1

前言

  实际上,Linux上也有分区的概念,通过df -h,就可以了解到各个分区的使用情况。当线上服务器跑了一段时间。可能会因为业务,产生的数据和日志把分区打满。那么这个时候,磁盘扩容,且不影响服务的使用就很重要了。

两种扩容方式

空余磁盘扩容

  • fdisk -l 查看可用磁盘,由结果我们可知道/dev/xvdb可以使用
[root@localhost home]# fdisk -l

Disk /dev/xvda: 274.9 GB, 274877906944 bytes
255 heads, 63 sectors/track, 33418 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c5cd2

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              64       33419   267922432   8e  Linux LVM

Disk /dev/xvdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
  • pvcreate /dev/xvdb 通过pvcreate命令将磁盘/dev/xvdb创建为一个系统PV
  • vgs 查看vg 看到vg为Volgroup
  • vgextend VolGroup /dev/xvdb 将/dev/xvd此PV加入Vol Group
    此处可以通俗理解为, VolGroup是一个磁盘资源池,使用vgdisplay查看资源池的名称
  • vgs 命令可以查看 VolGroup还有多少可用的空间
  • lvextend -L +5G /dev/mapper/VolGroup-lv_root 为/ 添加5G的空间
    我们通过df -h知道 /根目录挂载了这个/dev/mapper/VolGroup-lv_root
  • resize2fs /dev/VolGroup/lv_root 重新加载逻辑卷大小
    如果执行报错,xfs文件系统,用这个命令代替xfs_growfs /dev/VolGroup/lv_root
    这里重新加载逻辑卷大小,主要是做了逻辑卷和物理卷的映射,分配inode和block
  • df -h再次执行,此时/ 可用空间变大。

其他LVM分区空余空间进行扩容

  • 可能遇到一个问题,其他逻辑分区空间挺多,也可以把该逻辑分区的资源回收,加给需要空间的分区
[root@localhost home]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       60G   24G   34G  41% /
tmpfs                 935M     0  935M   0% /dev/shm
/dev/xvda1            477M   93M  360M  21% /boot
/dev/mapper/VolGroup-lv_home
                      199G   60M  189G   1% /home
  • umount /home由于/home挂载在/dev/mapper/VolGroup-lv_home,所以要先停用取消挂载,记得备份home数据!!!。如果有进程占用到/home,排查下,关掉进程。
  • e2fsck -f /dev/mapper/VolGroup-lv_home 检查逻辑分区/dev/mapper/VolGroup-lv_home
  • resize2fs -p /dev/mapper/VolGroup-lv_home 50G 重新设定逻辑分区大小
  • vgdisplay查看可用的空间(Free表示可用的空间)
  • lvreduce -L 100G /dev/mapper/VolGroup-lv_home 通过lvreduce重新分配资源。100G的意思是指分配100G给VolGroup-lv_home -100G是回收VolGroup-lv_home的100G的资源,注意参数和数字!!!!
  • vgdisplay 查看可用空间,会发现/home的资源再回收到资源池了。
  VG Size               265.50 GiB
  PE Size               4.00 MiB
  Total PE              67969
  Alloc PE / Size       42209 / 164.88 GiB
  Free  PE / Size       25760 / 100.62 GiB
  • lvextend -L +100.62G /dev/mapper/VolGroup-lv_root 给VolGroup-lv_root增加空间
  • resize2fs -p /dev/mapper/VolGroup-lv_root
    重新加载逻辑卷的大小,工作完成,不用任何重启,也不会影响业务使用。

总结

  实际上。做操作先明白磁盘原理,有兴趣可以百度下Device Mapper。磁盘是物理卷。我们目录挂载的都是逻辑卷。逻辑卷和物理卷是一个映射关系。


谢远东
4.5k 声望72 粉丝

Go Go Go